var Libro = function () {

return { 
init: function () {

			//myMask = new Ext.LoadMask(Ext.get(document.body), {msg:'Cargando...',removeMask: true});
			//		myMask.show();
			//		setTimeout('myMask.hide()',200);

			var isbnLibro;
			
			var gestionGroupLibro = new Ext.ButtonGroup({
				columns: 3,
				title: 'Gestion de Libros',
				items: [{
					text: '<font face="arial" size=2 color=black>Crear</font>',
					scale: 'large',
					rowspan: 3, 
					iconCls: 'crear',
					handler: function(){
										formularioLibro.getForm().reset();
										Ext.getCmp('IDIsbn').enable();
										winLibro.setTitle('Crear Libro');
										Ext.getCmp('BguardarLibro').setText('Guardar');
										winLibro.show(this);
									   }
					},{
						text: '<font face="arial" size=2 color=black>Actualizar</font>',
						scale: 'large',
						rowspan: 3,
						iconCls: 'actualizar',
						handler: function(){
												if(Ext.getCmp('IDIsbn').isValid())
												{
													isbnLibro = Ext.getCmp('IDIsbn').getValue();
													Ext.getCmp('IDIsbn').disable();
													winLibro.setTitle('Actualizar Libro');
													Ext.getCmp('BguardarLibro').setText('Actualizar');
													winLibro.show(this);
												}
												else{Ext.example.msg('Aviso', 'Debe seleccionar un libro');}
										   }
					},{
						text: '<font face="arial" size=2 color=black>Eliminar</font>',
						scale: 'large',
						rowspan: 3,
						iconCls: 'eliminar',
						handler: function(){
												if(Ext.getCmp('IDIsbn').isValid()){ eliminarLibro();}
												else{ Ext.example.msg('Aviso', 'Debe seleccionar un libro');}
										   }
					}
				]
			});
			
			var busquedaGroupLibro = new Ext.ButtonGroup({
				columns: 3,
				title: 'Opciones de busqueda',
				items: [{
					xtype:'splitbutton',
					text: '<font face="arial" size=2 color=black>Buscar</font>',
					scale: 'large',
					colspan: 1, 
					iconCls: 'buscar',
					menu: [
							{xtype: 'textfield', iconCls: 'buscar', id: 'IDBusquedaLibro', emptyText: 'buscar'},
							{text: 'Buscar por isbn', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'Isbn', start: 0, limit: 20}});}},
							{text: 'Buscar por titulo', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'Titulo', start: 0, limit: 20}});}},
							{text: 'Buscar por ano de publicacion', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'AnoPublicacion', start: 0, limit: 20}});}},
							{text: 'Buscar por idioma', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'Idioma', start: 0, limit: 25}});}},
							{text: 'Buscar por area de conocimiento', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'AreaConocimiento', start: 0, limit: 20}});}},
							{text: 'Buscar por editorial', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'Editorial', start: 0, limit: 20}});}},
							{text: 'Buscar por editores', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'Editores', start: 0, limit: 20}});}},
							{text: 'Buscar por palabras clave', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'PalabrasClave', start: 0, limit: 20}});}},
							{text: 'Buscar por todos los campos', iconCls: 'item', handler: function(){ LibroDataStore.load({params: {Busqueda:Ext.getCmp('IDBusquedaLibro').getValue(), Campo:'Todos', start: 0, limit: 20}});}}
						  ]
				},{
					xtype:'splitbutton',
					text: '<font face="arial" size=2 color=black>Agrupar</font>',
					scale: 'large',
					iconCls: 'agrupar',
					colspan: 1,
					menu: [
							{text: 'Isbn', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroIsbn');}},
							{text: 'Titulo', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroTitulo');}},
							{text: 'Ano de Publicacion', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroAnoPublicacion');}},
							{text: 'Idioma', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroIdioma');}},
							{text: 'Area de conocimiento', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroAreaConocimientoNombre');}},
							{text: 'Editorial', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroEditorialNombre');}},
							{text: 'Editores', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroEditores');}},
							{text: 'Palabras Clave', iconCls: 'item', handler: function(){ LibroDataStore.groupBy('libroPalabrasClave');}},
							{text: 'No agrupar', iconCls: 'item', handler: function(){ LibroDataStore.clearGrouping();}}
						  ],
					
				},{
					xtype:'splitbutton',
					text: '<font face="arial" size=2 color=black>Ordenar</font>',
					scale: 'large',
					iconCls: 'ordenar',
					colspan: 1,
					menu: [
							{text: 'Isbn', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroIsbn');}},
							{text: 'Titulo', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroTitulo');}},
							{text: 'Ano de Publicacion', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroAnoPublicacion');}},
							{text: 'Idioma', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroIdioma');}},
							{text: 'Area de conocimiento', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroAreaConocimientoNombre');}},
							{text: 'Editorial', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroEditorialNombre');}},
							{text: 'Editores', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroEditores');}},
							{text: 'Palabras Clave', iconCls: 'item', handler: function(){ LibroDataStore.sort('libroPalabrasClave');}}
						  ],
				}]
			});
			
			var accesibilidadGroupLibro = new Ext.ButtonGroup({
				columns: 1,
				title: 'Accesibilidad',
				items: [{
					text: '<font face="arial" size=2 color=black>Ajustar</font>',
					scale: 'large',
					rowspan: 3, 
					iconCls: 'ajustar',
					handler: function(){
								winAyudaLibro.show();
							}
				},{
					xtype:'splitbutton',
					text: '<font face="arial" size=2 color=black>Temas</font>',
					scale: 'large',
					//rowspan: 3,
					iconCls: 'temas',
					menu: [
							{text: 'access', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-access.css');}},
							{text: 'black', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-black.css');}},
							{text: 'blue', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-blue.css');}},
							{text: 'chocolate', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-chocolate.css');}},
							{text: 'gray', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-gray.css');}},
							{text: 'green', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-green.css');}},
							{text: 'indigo', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-indigo.css');}},
							{text: 'midnight', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-midnight.css');}},
							{text: 'olive', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-olive.css');}},
							{text: 'peppermint', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-peppermint.css');}},
							{text: 'purple', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-purple.css');}},
							{text: 'red', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-red.css');}},
							{text: 'silverCherry', iconCls: 'docs', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-silverCherry.css');}},
							{text: 'slickness', iconCls: 'buscar', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-slickness.css');}},
							{text: 'slate', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-slate.css');}},
							{text: 'vista', handler: function(){ Ext.util.CSS.swapStyleSheet('theme', '../extjs/resources/css/xtheme-vista.css');}}
					]
				}]
			});
			
			var ayudaGroupLibro = new Ext.ButtonGroup({
				columns: 1,
				title: 'Ayuda',
				items: [{
					text: '<font face="arial" size=2 color=black>Ayuda</font>',
					scale: 'large',
					rowspan: 3, 
					iconCls: 'ayuda',
					handler: function(){
								winAyudaLibro.show();
							}
				}]
			});
			
			var LibroEditorialDataStore = new Ext.data.Store({
				id: 'LibroEditorialDataStore',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listarEditoriales', 
					method: 'POST'
				}),
				root: 'results',
				//baseParams:{Busqueda:'', Campo:''},
				totalProperty: 'total',
				reader: new Ext.data.JsonReader({
						root: 'results',
						totalProperty: 'total'
					},
					[
						{name: 'libroEditorialCodigoCombo', type: 'string'},
						{name: 'libroEditorialNombreCombo', type: 'string'},
						{name: 'libroEditorialPaginaWebCombo', type: 'string'},
						{name: 'libroEditorialPaisOrigenCombo', type: 'string'}
					]
				)
			});
			LibroEditorialDataStore.load();
			
			var LibroAreaConocimientoDataStore = new Ext.data.Store({
				id: 'LibroAreaConocimientoDataStore',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listarAreasCononocimiento', 
					method: 'POST'
				}),
				root: 'results',
				//baseParams:{Busqueda:'', Campo:''},
				totalProperty: 'total',
				reader: new Ext.data.JsonReader({
						root:'results',
						totalProperty:'total'
					},
					[
						{name: 'libroAreaConocimientoCodigoCombo', type: 'string'},
						{name: 'libroAreaConocimientoNombreCombo', type: 'string'},
						{name: 'libroAreaConocimientoDescripcionCombo', type: 'string'}
					]
				)
			});
			LibroAreaConocimientoDataStore.load();
			
			var LibroAutoresDataStore = new Ext.data.GroupingStore({
				id: 'LibroAutoresDataStore',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listarAutores', 
					method: 'POST'
				}),
				root: 'results',
				//baseParams:{Busqueda:'', Campo:''},
				totalProperty: 'total',
				reader: new Ext.data.JsonReader({
						root:'results',
						totalProperty:'total'
					},
					[
						{name: 'libroAutorCodigoCombo', type: 'string'},
						{name: 'libroAutorNombreCombo', type: 'string'}
					]
				),
				sortInfo:{field: 'libroAutorNombreCombo', direction: 'ASC'}
			});
			LibroAutoresDataStore.load();
			
			var LibroAutoresDataStoreTemp = new Ext.data.GroupingStore({
				id: 'LibroAutoresDataStoreTemp',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listarAutoresLibro', 
					method: 'POST'
				}),
				root: 'results',
				//baseParams:{Busqueda:'', Campo:''},
				totalProperty: 'total',
				reader: new Ext.data.JsonReader({
						root:'results',
						totalProperty:'total'
					},
					[
						{name: 'libroAutorCodigoCombo', type: 'string'},
						{name: 'libroAutorNombreCombo', type: 'string'}
					]
				),
				sortInfo:{field: 'libroAutorNombreCombo', direction: 'ASC'}
			});
			//LibroAutoresDataStoreTemp.load();
			
			var LibroPalabrasClaveDataStore = new Ext.data.GroupingStore({
				id: 'LibroPalabrasClaveDataStore',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listarPalabrasClave', 
					method: 'POST'
				}),
				root: 'results',
				totalProperty: 'total',
				reader: new Ext.data.JsonReader({
						root:'results',
						totalProperty:'total'
					},
					[
						{name: 'libroPalabraClaveCodigoCombo', type: 'string'},
						{name: 'libroPalabraClaveNombreCombo', type: 'string'}
					]
				),
				sortInfo:{field: 'libroPalabraClaveNombreCombo', direction: 'ASC'}
			});
			LibroPalabrasClaveDataStore.load();
			
			var LibroPalabrasClaveDataStoreTemp = new Ext.data.GroupingStore({
				id: 'LibroPalabrasClaveDataStoreTemp',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listarPalabrasClaveLibro', 
					method: 'POST'
				}),
				root: 'results',
				totalProperty: 'total',
				reader: new Ext.data.JsonReader({
						root:'results',
						totalProperty:'total'
					},
					[
						{name: 'libroPalabraClaveCodigoCombo', type: 'string'},
						{name: 'libroPalabraClaveNombreCombo', type: 'string'}
					]
				),
				sortInfo:{field: 'libroPalabraClaveNombreCombo', direction: 'ASC'}
			});
			//LibroPalabrasClaveDataStoreTemp.load();
			
			var LibroDataStore = new Ext.data.GroupingStore({
				id: 'LibroDataStore',
				proxy: new Ext.data.HttpProxy({
					url: 'LIBRO/listar', 
					method: 'POST'
				}),
				root: 'results',
				baseParams:{Busqueda:'', Campo:''},
				totalProperty: 'total',
				reader:new Ext.data.JsonReader({
						root:'results',
						totalProperty:'total'
					},
					[
						{name: 'libroIsbn', type: 'string'},
						{name: 'libroTitulo', type: 'string'},
						{name: 'libroAnoPublicacion', type: 'string'},
						{name: 'libroIdioma', type: 'string'},
						{name: 'libroAreaConocimientoCodigo', type: 'string'},
						{name: 'libroAreaConocimientoNombre', type: 'string'},
						{name: 'libroEditorialNombre', type: 'string'},
						{name: 'libroEditorialCodigo', type: 'string'},
						{name: 'libroAutoresCodigos', type: 'string'},
						{name: 'libroAutoresNombres', type: 'string'},
						{name: 'libroPalabrasClaveCodigos', type: 'string'},
						{name: 'libroPalabrasClaveNombres', type: 'string'}
					]
				),
				sortInfo:{field: 'libroIsbn', direction: 'ASC'}
			});
			LibroDataStore.load({params: {start: 0, limit: 20}});
			
			var expanderLibro = new Ext.ux.grid.RowExpander({
				tpl : new Ext.Template(
					//'<p><b>Isbn:</b> {libroIsbn} <b>Titulo:</b> {libroTitulo}</p>', // si funciona!!!!!!!!!!!!
					'<p><b>Isbn:</b> {libroIsbn}</p>',
					'<p><b>Titulo:</b> {libroTitulo}</p>',
					'<p><b>Area de Conocimiento:</b> {libroAreaConocimientoNombre}</p>',
					'<p><b>Autores:</b> {libroAutoresNombres}</p>',
					'<p><b>Editorial:</b> {libroEditorialNombre}</p>',
					'<p><b>Ano publicacion:</b> {libroAnoPublicacion}</p>',
					'<p><b>Idioma:</b> {libroIdioma}</p>',
					'<p><b>Palabras clave:</b> {libroPalabrasClaveNombres}</p>'
				)
			});
				
			var formularioLibro = new Ext.FormPanel({
				xtype: 'fieldset',
				labelWidth: 130,
				//title: 'Datos del Libro',
				defaultType: 'textfield',
				bodyStyle: Ext.isIE ? 'padding:5 5 5px 15px;' : 'padding: 10px 10px;',
				style: {"margin-right": Ext.isIE6 ? (Ext.isStrict ? "-10px" : "-13px") : "0" },
				items: [
				  {fieldLabel: 'ISBN', emptyText: 'ingrese el ISBN', id: 'IDIsbn', name: 'libroIsbn', anchor: '100%', allowBlank:false},
				  {fieldLabel: 'Titulo', emptyText: 'ingrese el titulo', id: 'IDTitulo', name: 'libroTitulo', anchor: '100%', allowBlank:false},
				  {xtype: 'datefield', emptyText: 'ingrese el ano de publicacion', fieldLabel: 'Ano Publicacion', id: 'IDAnoPublicacion', name: 'libroAnoPublicacion', anchor: '100%', allowBlank:false},
				  {fieldLabel: 'Idioma', emptyText: 'ingrese el idioma', id: 'IDIdioma', anchor: '100%', name: 'libroIdioma'},
				  {xtype: 'combo', emptyText: 'seleccione el area de conocimiento', name: 'libroAreaConocimientoCodigo', triggerAction:'all', forceSelection:true, hiddenName :'libroAreaConocimientoCodigo', fieldLabel: 'Area de Conocimiento', mode: 'local', id: 'IDAreaConocimiento', valueField: 'libroAreaConocimientoCodigoCombo', store: LibroAreaConocimientoDataStore, displayField: 'libroAreaConocimientoNombreCombo', anchor: '100%'},
				  {xtype: 'combo', emptyText: 'seleccione la editorial', name: 'libroEditorialCodigo', triggerAction:'all', forceSelection:true, hiddenName :'libroEditorialCodigo', fieldLabel: 'Editorial', mode: 'local', id: 'IDEditorial', valueField: 'libroEditorialCodigoCombo', store: LibroEditorialDataStore, displayField: 'libroEditorialNombreCombo', anchor: '100%'},
				  {xtype: 'label', html: '<br />'},
				  {
					xtype: 'itemselector', 
					//height: 190, 
					name: 'libroAutoresCodigos', 
					fieldLabel: 'Autores', 
					id: 'IDLibroAutores',
					imagePath: '../extjs/examples/ux/images/',
					multiselects: [{
						width: 210,
						height: 175,
						store: LibroAutoresDataStore,
						displayField: 'libroAutorNombreCombo',
						valueField: 'libroAutorCodigoCombo'
					},{
						width: 210,
						height: 175,
						store: LibroAutoresDataStoreTemp,
						displayField: 'libroAutorNombreCombo',
						valueField: 'libroAutorCodigoCombo'
					}]
				   },
				  {
					xtype: 'itemselector', 
					name: 'libroPalabrasClaveCodigos', 
					fieldLabel: 'Palabras clave', 
					id: 'IDLibroPalabrasClave',
					imagePath: '../extjs/examples/ux/images/',
					multiselects: [{
						width: 210,
						height: 175,
						store: LibroPalabrasClaveDataStore,
						displayField: 'libroPalabraClaveNombreCombo',
						valueField: 'libroPalabraClaveCodigoCombo'
					},{
						width: 210,
						height: 175,
						store: LibroPalabrasClaveDataStoreTemp,
						displayField: 'libroPalabraClaveNombreCombo',
						valueField: 'libroPalabraClaveCodigoCombo'
					}]
				  }
				], 
				buttons:[
				  {text: 'Guardar', 
				   id:'BguardarLibro', 
				   iconCls:'crear16', 
				   handler: function(){ 
										if(Ext.getCmp('BguardarLibro').getText()=='Guardar') { crearLibro();}
										if(Ext.getCmp('BguardarLibro').getText()=='Actualizar') { actualizarLibro();}
									  }
				  },
				  {text:'Cancelar', iconCls:'eliminar16', handler: function(){ Ext.example.msg('Aviso','Operacion cancelada'); winLibro.hide();}}
				],
				width: 600,
				height: 600
			});
			
			var winLibro = new Ext.Window({
				title: 'Crear Libro',
				closable: false,
				width: 610,
				modal: true,
				height: 630,
				items: [formularioLibro]
			});
			
			winLibro.show();
			winLibro.hide();
			
			var winAyudaLibro = new Ext.Window({
				title: 'Ayuda',
				closable: false,
				width: 380,
				modal: true,
				height: 280,
				items: [{ html: '<p>Aqui pongo lo de la ayuda</p>'}],
				buttons: [ {text:'Aceptar', iconCls:'agregar', handler: function(){ winAyudaLibro.hide();}}]
			});

			var gridLibros = new Ext.grid.GridPanel({
				store: LibroDataStore,
				columns: [
					expanderLibro,
					{header: 'ISBN', width: 110, sortable: true, dataIndex: 'libroIsbn'},
					{header: 'Titulo', width: 130, id:'IDlibroTitulo', sortable: true, dataIndex: 'libroTitulo'},
					{header: 'Ano de Publicacion', width: 110, sortable: true, dataIndex: 'libroAnoPublicacion'},
					{header: 'Idioma', width: 100, sortable: true, dataIndex: 'libroIdioma'},
					{header: 'Area de Conocimiento', width: 125, sortable: true, dataIndex: 'libroAreaConocimientoNombre'},
					{header: 'Editorial', width: 125, sortable: true, dataIndex: 'libroEditorialNombre'},
					{header: 'Autores', width: 180, sortable: true, dataIndex: 'libroAutoresNombres'},
					{header: 'Palabras Clave', width: 180, sortable: true, dataIndex: 'libroPalabrasClaveNombres'}
				],
				sm: new Ext.grid.RowSelectionModel({
					singleSelect: true,
					listeners: {
						rowselect: function(sm, row, rec) {
							LibroPalabrasClaveDataStoreTemp.load({params: {Isbn: rec.get('libroIsbn')}});
							LibroAutoresDataStoreTemp.load({params: {Isbn: rec.get('libroIsbn')}});
							formularioLibro.getForm().loadRecord(rec);
						}
					}
				}),
				plugins: [expanderLibro],
				tbar: [gestionGroupLibro, busquedaGroupLibro, accesibilidadGroupLibro, ayudaGroupLibro],
				stripeRows: true,
				columnLines: true,
				autoExpandColumn: 'IDlibroTitulo',
				autoHeight: true,
				autoWidth: true,
				title: '<font face="arial" size=2>Datos de Libros</font>',
				stateful: true,
				stateId: 'grid',
				bbar: new Ext.PagingToolbar({
					pageSize: 20,
					store: LibroDataStore,
					displayInfo: true,
					displayMsg: 'Mostrando {0} - {1} de {2} Libros',
					emptyMsg: '<font face="arial" size=2>No hay Libros</font>',
					items:[{ scale: 'medium'}]
				}),
				viewConfig: {
					forceFit:true
				}, 
				view: new Ext.grid.GroupingView()
			});
			
			gridLibros.render('formularioLibro');
			
			function crearLibro(){
				if(Ext.getCmp('IDIsbn').isValid() && Ext.getCmp('IDTitulo').isValid())
				{
					Ext.Ajax.request({  
					waitMsg: 'Espere por favor',
					url: 'LIBRO/guardar', 
					params: {
						Isbn: Ext.getCmp('IDIsbn').getValue(),
						Titulo: Ext.getCmp('IDTitulo').getValue(),
						AnoPublicacion: Ext.getCmp('IDAnoPublicacion').getValue(),
						Idioma: Ext.getCmp('IDIdioma').getValue(),
						AreaConocimiento: Ext.getCmp('IDAreaConocimiento').getValue(),
						Editorial: Ext.getCmp('IDEditorial').getValue(),
						Autores: Ext.getCmp('IDLibroAutores').getValue(),
						PalabrasClave: Ext.getCmp('IDLibroPalabrasClave').getValue()
					},
					success: function(response, action){	  
						obj = Ext.util.JSON.decode(response.responseText);
						if (obj.success)
						{
							Ext.example.msg('Alerta', obj.mensaje);
							LibroDataStore.reload();
						}	
						else if (obj.success == false)
						{
							Ext.example.msg('Error', obj.errors.reason);
						}
					},
					failure: function(response){
						var result=response.responseText;
						Ext.example.msg('Error', 'no se pudo conectar a la base de datos intente mas tarde');  
					}
					});
					winLibro.hide();
				}
				else{
					Ext.example.msg('Error', 'campos incompletos');
				}
			}
			
			function actualizarLibro(){
				if(Ext.getCmp('IDIsbn').isValid() && Ext.getCmp('IDTitulo').isValid())
				{
					Ext.Ajax.request({  
					waitMsg: 'Espere por favor',
					url: 'LIBRO/actualizar', 
					params: {
						IsbnViejo: isbnLibro,
						Isbn: Ext.getCmp('IDIsbn').getValue(),
						Titulo: Ext.getCmp('IDTitulo').getValue(),
						AnoPublicacion: Ext.getCmp('IDAnoPublicacion').getValue(),
						Idioma: Ext.getCmp('IDIdioma').getValue(),
						AreaConocimiento: Ext.getCmp('IDAreaConocimiento').getValue(),
						Editorial: Ext.getCmp('IDEditorial').getValue(),
						Autores: Ext.getCmp('IDLibroAutores').getValue(),
						PalabrasClave: Ext.getCmp('IDLibroPalabrasClave').getValue()
					},
					success: function(response, action){	  
						obj = Ext.util.JSON.decode(response.responseText);
						if (obj.success)
						{
							Ext.example.msg('Alerta', obj.mensaje);
							LibroDataStore.reload();
						}	
						else if (obj.success == false)
						{
							Ext.example.msg('Error', obj.errors.reason);
						}
					},
					failure: function(response){
						var result=response.responseText;
						Ext.example.msg('Error', 'no se pudo conectar a la base de datos intente mas tarde');   
					}
					});
					winLibro.hide();
				}
				else{
					Ext.example.msg('Error', 'campos incompletos');
				}
			}
			
			function eliminarLibro(){
				
					Ext.MessageBox.confirm('Confirmacion','Realmente desea eliminar este Libro?',
					function(btn){
						if(btn == 'yes'){
							Ext.Ajax.request({  
							waitMsg: 'Espere por favor',
							url: 'LIBRO/eliminar', 
							params: {
								Isbn: Ext.getCmp('IDIsbn').getValue()
							},
							success: function(response, action){	  
								obj = Ext.util.JSON.decode(response.responseText);
								if (obj.success)
								{
									Ext.example.msg('Alerta', obj.mensaje);
									LibroDataStore.reload();
									formularioLibro.getForm().reset();
								}	
								else if (obj.success == false)
								{
									Ext.example.msg('Error', obj.errors.reason);
								}
							},
							failure: function(response){
								var result=response.responseText;
								Ext.example.msg('Error', 'no se pudo conectar a la base de datos intente mas tarde'); 
							}
							});
						}
					});
				
			}
		}
	}
}();
